import java.io.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class CommFrame extends JFrame implements ActionListener {
    File file=null;
    JMenuBar bar;
    JMenu fileMenu;
    JMenuItem inputMenuItem,showMenuItem;
    JTextArea show;         //负责显示信息
    InputArea inputMessage; //负责录入信息(InputArea是自己写的类，见本例中的InputArea.java)
    CardLayout card=null;   //卡片式布局.
    JPanel pCenter;
    CommFrame() {
        file=new File("通讯录.txt");
        inputMenuItem=new JMenuItem("录入");
        showMenuItem=new JMenuItem("显示");
        bar=new JMenuBar();
        fileMenu=new JMenu("菜单显示");
        fileMenu.add(inputMenuItem);
        fileMenu.add(showMenuItem);
        bar.add(fileMenu);
        setJMenuBar(bar);
        inputMenuItem.addActionListener(this);
        showMenuItem.addActionListener(this);
        inputMessage=new InputArea(file);
        show=new JTextArea(12,20);
        card=new CardLayout();
        pCenter=new JPanel();
        pCenter.setLayout(card);
        pCenter.add("inputMenuItem",inputMessage);
        pCenter.add("showMenuItem",show);
        add(pCenter,BorderLayout.CENTER);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
        setBounds(100,50,420,380);
        validate();
    }
    public void actionPerformed(ActionEvent e) {
        if(e.getSource()==inputMenuItem)
            card.show(pCenter,"inputMenuItem");
        else if(e.getSource()==showMenuItem){
            int number=1;
            show.setText(null);
            card.show(pCenter,"showMenuItem");
            try{  RandomAccessFile in=new RandomAccessFile(file,"r");
                String name=null;
                while((name=in.readUTF())!=null) {
                    show.append("\n"+number+" "+name);
                    show.append("\t "+in.readUTF());  //读取email
                    show.append("\t"+in.readUTF());  //读取phone
                    show.append("\n------------------------- ");
                    number++;
                }
                in.close();
            }
            catch(Exception ee){}
        }
    }
}
